package message

const (
	LoginMesType = "LoginMes"
	LoginResMesType = "LoginResMes"
	RegisterMesType = "RegisterMes"
	RegisterResMesType = "RegisterResMes"
	NotifyUserStatusMesType = "NotifyUserStatusMes"
	SmsMesType = "SmsGroupMes"
	SmsUserIdMesType = "SmsUserIdMes"
	SmsExitMesType = "SmsExitMes"
)

//定义用户在线状态的常量
const (
	UserOnline = iota //用户上线
	UserOffline //用户离线
	UserBusyStatus //用户忙碌

)

type Message struct {
	Type string `json:"type"` //消息类型
	Data string `json:"data"` //消息的内容
}

//定义两个不用的消息
type LoginMes struct {
	UserId int `json:"userid"`
	UserPwd string `json:"user_pwd"`
	UserName string `json:"user_name"`
}

type LoginResMes struct {
	Code int     `json:"code"` //返回状态码500表示未注册
	UsersId []int `json:"users_id"`//保存用户ID的切片
	Error string `json:"error"` //返回错误信息
}

type RegisterMes struct {
	User User `json:"user"`
}

type RegisterResMes struct {
	Code int     `json:"code"` //返回状态码 400 表示用户已经占有
	Error string `json:"error"` //返回错误信息
}

//推送上线通知用户状态变化消息
type NotifyUserStatusMes struct {
	UserId int `json:"userid"`
	Status int `json:"status"`
}

//发送短消息
type SmsGroupMes struct {
	Context string `json:"context"`	 //内容
	User //匿名结构体，继承关系
}

//发送短消息
type SmsUserIdMes struct {
	Context string `json:"context"`	 //内容
	ContextId int `json:"context_id"`
	User //匿名结构体，继承关系
}

type SmsExitMes struct {
	ExitId int `json:"exit_id"`
	User //匿名结构体，继承关系
}